package org.vsg.security.model.service;

import java.io.Serializable;
import java.util.Collection;

import org.springframework.dao.DataAccessException;
import org.vsg.common.biz.exception.ServiceException;
import org.vsg.common.pagination.Pagination;
import org.vsg.common.pagination.PaginationException;
import org.vsg.common.pagination.carrier.Carrier;
import org.vsg.security.model.domain.SysActor;


public interface SysActorService {

	/**
	 * @param sysActor
	 * @exception ServiceException
	 */
	public void addSysActor(SysActor sysActor) throws ServiceException;

	/**
	 * 
	 * @param allSysActor
	 * @throws DataAccessException
	 */
	public void saveAll(Collection<SysActor> allSysActor) throws ServiceException;


	/**
	 * @param sysActor
	 * @exception ServiceException
	 */   
	public void updateSysActor(SysActor sysActor) throws ServiceException;
	
	
	/**
	 * @param sysActor
	 * @exception ServiceException
	 */   
	public void updateSimpleSysActor(SysActor sysActor) throws ServiceException;

	
	/**
	 * @param pk -- primary key for loading entity
	 * @exception ServiceException
	 */   
	public SysActor loadSysActor(Serializable pk) throws ServiceException;
	
	
	/**
	 * @param sysActor
	 * @exception ServiceException
	 */   
	public void deleteSysActor(SysActor sysActor) throws ServiceException;


	/**
	 * 
	 * @param all
	 * @throws DataAccessException
	 */
	public void deleteAll(Collection<SysActor> all) throws ServiceException;

	
	
	/**
	 * 
	 * @param sysActor
	 * @throws ServiceException
	 */
	public void markDeleteSysActor(SysActor sysActor) throws ServiceException;	
	
	
   	/** 
   	 * @param carrier
   	 * @exception ServiceException
   	 * @exception PaginationException
   	 */
   	public Pagination pageSysActor(Carrier carrier) throws ServiceException, PaginationException;
   
   
   	/** 
   	 * @param carrier
     * @exception ServiceException
     * @exception PaginationException
     *
     */
   	public Pagination pageSysActorByAll(Carrier carrier) throws ServiceException, PaginationException;
	

   	/**
   	 * show the select all defined
   	 * @return
   	 * @throws ServiceException
   	 */
	public Collection<SysActor> findByAll() throws ServiceException;

	/**
	 * get the clientTrade by client trade code
	 * @param code
	 * @return
	 * @throws ServiceException
	 */
	public SysActor getByCode(String code) throws ServiceException;
	
}